package database

import (
	"encoding/json"
	_ "fmt"
	"io"
	"io/ioutil"
)

type Dbconfig struct {
	CountDBName       string `json:"DBName"`
	DBServerAddr      string `json:"dbServerAddr"`     // 数据库地址
	DBServerPort      int    `json:"dbServerPort"`     // 数据库端口
	DBServerUsesrName string `json:"dbServerUserName"` // 数据库用户名
	DBServerPassword  string `json:"dbServerPassword"` // 数据库密码
}
type Privatetopic struct {
	Loginchannel  string `json:"login_channel_top"`
	Gateserver    string `json:"gate_to_server"`
	Gategetserver string `json:"get_gate_server"`
	Gamechannel   string `json:"game_channel"`
}

type JsonConfig struct {
	HttpServicePort int          `json:"httpServicePort"` // HTTP服务数据接收端口
	Serverip        string       `json:"serverip"`        //ip地址
	RedisHost       string       `json:"redisHost"`       // redis链接地址
	RedisKey        string       `json:"redisKey"`
	RedisTopic      string       `json:"redisTopic"`     // redis监听topic
	RedisSendTopic  string       `json:"redisSendTopic"` // redis发送topic
	FishAll         Dbconfig     `json:"gameapi"`
	PrivatetopicAll Privatetopic `json:"private_topic"`
}

type ClearConfig struct {
	Db Dbconfig
}

var G_JsonConfig JsonConfig
var Dbdata ClearConfig

func Run() bool {
	bytes, err := ioutil.ReadFile("database/config.json")
	if err != nil {
		panic(err)
		return false
	}

	if err := json.Unmarshal(bytes, &G_JsonConfig); err != nil {
		panic(err)
		return false
	}

	return true
}

func ReadFrom(reader io.Reader, num int) ([]byte, error) {
	p := make([]byte, num)
	n, err := reader.Read(p)
	if n > 0 {
		return p[:n], nil
	}
	return p, err
}
